package com.example.pm.ending.server.mapper;

import com.example.pm.ending.server.module.admin.AdminListEntityVO;
import com.example.pm.ending.server.module.admin.UpdateAdminEntityDTO;
import com.example.pm.ending.server.pojo.entity.Admin;
import com.example.pm.ending.server.pojo.vo.AdminListVO;
import com.example.pm.ending.server.pojo.vo.AdminStandardVO;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
 * @author 闫鑫飞
 */
@Repository
public interface AdminMapper {
    /**
     * 添加新管理员
     * @param admin 新管理员参数
     */
    int insert(Admin admin);

    /**
     * 批量添加管理员
     * @param list 新管理员们
     */
    int insertBatch(List<Admin>list);

    /**
     * 通过id删除管理员
     * @param id 管理员的id
     */
    int deleteById(Long id);
    /**
     * 批量添加管理员
     * @param id 管理员的id们
     */
    int deleteBatch(List<Long>id);

    /**
     * 动态修改管理员信息
     * @param admin 修改后的管理员信息
     */
    int update(Admin admin);

    /**
     * 查询管理员总数
     */
    long count();

    /**
     * 根据用户名查询管理员姓名
     * @param name 管理员姓名
     */
    int countByName(String name);

    /**
     * 根据用户名查询管理员数量
     * @param username 用户名
     * @return 查询到的数量
     */
    int countByUsername(String username);

    /**
     * 根据用户名查询管理员电话
     * @param phone 管理员电话
     */
    int countByPhone(String phone);


    /**
     * 管理员列表
     * @return List<AdminListEntityVO>
     */
    List<AdminListEntityVO> list();

    /**
     * 根据用户名查找管理员信息
     * @param username 管理员用户名
     * @return AdminStandardVO
     */
    AdminStandardVO getAdminByUsername(String username);

    /**
     * 根据id查找管理员信息
     * @param id 管理员id
     * @return AdminStandardVO
     */
    AdminStandardVO getAdminById(Long id);




}
